package com.unicdata.twofactorauth.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

/**
 * 2FA配置属性
 *
 * @author lhn
 * @date 2025/07/02 13:43
 * @since 1.0.0
 **/
@Data
@ConfigurationProperties(prefix = "two-factor")
public class TwoFactorProperties {

    /**
     * 时间步长（秒），默认30秒
     */
    private int timeStepSizeInSeconds = 30;

    /**
     * 允许的时间窗口大小，默认1（允许前后1个计数的验证码）
     */
    private int windowSize = 1;

    /**
     * 验证码位数，默认6位
     */
    private int codeDigits = 6;

    /**
     * 应用名称，用于生成二维码URL
     */
    private String issuer = "应用名称";

    /**
     * 密钥表示方式，默认BASE32
     */
    private String keyRepresentation = "BASE32";

    /**
     * 二维码配置
     */
    private QrCode qrCode = new QrCode();

    @Data
    public static class QrCode {
        /**
         * 二维码宽度
         */
        private int width = 200;

        /**
         * 二维码高度
         */
        private int height = 200;

        /**
         * 二维码图片格式
         */
        private String format = "PNG";
    }

}